<?php
namespace Api\Core;
use Think\Controller;

class Web extends Controller {

	public function __construct() {
		parent::__construct();
	}


    /**
     * 验证是否是POST方式访问
     */
    protected function isPost() {
        if (!IS_POST) $this->error('error');
    }

    /**
     * 验证是否是GET方式访问
     */
    protected function isGet() {
        if (!IS_GET) $this->error('error');
    }

	/**
     * 重写TP ajaxReturn方法, Ajax方式返回数据到客户端
     * @access protected
     * @param mixed $data 要返回的数据
     * @param String $type AJAX返回数据格式
     * @return void
     */
    protected function ajaxReturn($data, $type = '') {
        if (empty($type))
            $type = C('DEFAULT_AJAX_RETURN');
        switch (strtoupper($type)) {
            case 'JSON' :
                // 返回JSON数据格式到客户端 包含状态信息
                header('Content-Type:text/html; charset=utf-8');
                exit(json_encode($data));
            case 'XML' :
                // 返回xml格式数据
                header('Content-Type:text/xml; charset=utf-8');
                exit(xml_encode($data));
            case 'JSONP':
                // 返回JSON数据格式到客户端 包含状态信息
                header('Content-Type:text/html; charset=utf-8');
                $handler = isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
                exit($handler . '(' . json_encode($data) . ');');
            case 'EVAL' :
                // 返回可执行的js脚本
                header('Content-Type:text/html; charset=utf-8');
                exit($data);
            default :
                // 用于扩展其他返回格式数据
                tag('ajax_return', $data);
        }
    }

    /**
     * Ajax返回JSON语句方法封装
     *
     * @param $result 返回状态码
     * @param string $msg 返回提示信息
     * @param string $data 返回数据
     */
    protected function out($result,$msg='',$data='') {
        $this->ajaxReturn(array(
           'result' => $result,
           'msg' => $msg,
           'data' => $data
        ));
    }

}
